package com.K_lificapp;

import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

public class CursosDataSource {

  // Database fields
  private SQLiteDatabase database;
  private CursosSQLiteHelper dbHelper;
  private String[] allColumns = { CursosSQLiteHelper.IDCURSO,
		  CursosSQLiteHelper.CURSO,
		  CursosSQLiteHelper.PLAN,
		  CursosSQLiteHelper.NOPERIODO,
		  CursosSQLiteHelper.MODALIDAD,
		  CursosSQLiteHelper.TURNO,
		  CursosSQLiteHelper.FECHAINICIO
  		};

  public CursosDataSource(Context context) {
    dbHelper = new CursosSQLiteHelper(context);
  }

  public void open() throws SQLException {
    database = dbHelper.getWritableDatabase();
  }

  public void close() {
    dbHelper.close();
  }

  @SuppressLint("SimpleDateFormat")
public Cursos CrearCurso(String curso, Integer plan, Integer noperiodo, Integer modalidad, Integer turno, Date fechaInicio) {
    ContentValues values = new ContentValues();
    values.put(CursosSQLiteHelper.CURSO, curso);
    values.put(CursosSQLiteHelper.PLAN, plan);
    values.put(CursosSQLiteHelper.NOPERIODO, noperiodo);
    values.put(CursosSQLiteHelper.MODALIDAD, modalidad);
    values.put(CursosSQLiteHelper.TURNO, turno);
    
//    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    
    DateFormat dateFormatISO8601 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String fechaI = dateFormatISO8601.format(fechaInicio);
    
    values.put(CursosSQLiteHelper.FECHAINICIO, fechaI);
    
    long insertId = database.insert(CursosSQLiteHelper.TABLA_CURSOS, null,
        values);
    Cursor cursor = database.query(CursosSQLiteHelper.TABLA_CURSOS,
        allColumns, CursosSQLiteHelper.IDCURSO + " = " + insertId, null,
        null, null, null);
    cursor.moveToFirst();
    Cursos newCurso = cursorToCursos(cursor);
    cursor.close();
    return newCurso;
  }

  public void deleteCurso(Cursos curso) {
    long id = curso.getIdCurso();
//    System.out.println("Comment deleted with id: " + id);
    database.delete(CursosSQLiteHelper.TABLA_CURSOS, CursosSQLiteHelper.IDCURSO
        + " = " + id, null);
  }

  public List<Cursos> getAllCursos() {
    List<Cursos> cursos = new ArrayList<Cursos>();

    Cursor cursor = database.query(CursosSQLiteHelper.TABLA_CURSOS,
        allColumns, null, null, null, null, null);

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
      Cursos curso = cursorToCursos(cursor);
      cursos.add(curso);
      cursor.moveToNext();
    }
    // Make sure to close the cursor
    cursor.close();
    return cursos;
  }

  @SuppressLint("SimpleDateFormat")
private Cursos cursorToCursos(Cursor cursor) {
    Cursos cursos = new Cursos();
    cursos.setIdCurso(cursor.getLong(0));
    cursos.setCurso(cursor.getString(1));
    cursos.setPlan(cursor.getInt(2));
    cursos.setNoPeriodo(cursor.getInt(3));
    cursos.setModalidad(cursor.getInt(4));
    cursos.setTurno(cursor.getInt(5));
	
	SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
	Date fechaInicio = null;
	try {
		fechaInicio = sdf.parse(cursor.getString(6));
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
//    cursos.setFechaInicio(Date.valueOf(cursor.getString(6)));
    cursos.setFechaInicio(fechaInicio);
    return cursos;
  }
} 

